As the recent development of mobile communication technology promotes the rapid popularization of mobile communication terminals, our lives have been changed for most of ordinary person to always carry mobile communication terminals such as mobile phones, personal digital assistants (PDAs), and smart phones. Mobile communication terminals allows users to easily access communication networks and system resources that related art communication systems have to be efficiently distributed.
Among such technologies, streaming services receiving multimedia contents such as audio contents and video contents in real time via wireless contents communication networks and playing them are provided while users are on the go with mobile communication terminals. Streaming services applied to wired IPTVs provide multimedia contents through a Real-time Transport Protocol (RTP) or a combination of the RTP and MPEG-2.
However, in the case of wireless streaming services, problems arise when they are provided through the RTP or a combination of the RTP and the MPEG-2. Firstly, since the RTP does not support multiplexing, when multimedia contents are divided into a plurality of packets and transmitted, a plurality of ports may need to be opened according to the plurality of packets and also streaming services may not be provided normally by using the RTP, especially in a firewall installed area.
Secondly, the RTP operates on a UDP. The UDP divides multimedia contents into a plurality of packets and transmits them to a receiving side on a wireless internet, and then, does not confirm whether the receiving side receives the transmitted packets in a correct order. For this reason, packet loss may occur, and additionally, when packet loss occurs, since it means that lost contents packets are not retransmitted to the receiving side, this may cause contents loss. Accordingly, streaming services are provided to mobile communication terminals such as smart phones through a Hyper Text Protocol (HTTP) operating on a TCP. This is commonly referred to as ‘HTTP streaming’.
In general, since the HTTP is a protocol used to transmit hyper text such as texts and images, when a mobile communication terminal such as a smart phone provides multimedia contents streaming service through the HTTP, due to the large size of multimedia contents, the streaming service cannot be provided in real time. Then, hereinafter, an internal structure of a system for HTTP streaming service will be described in more detail with reference to FIG. 1.
FIG. 1 is a block diagram illustrating an internal structure of a system for HTTP streaming service in a multimedia system.
Referring to FIG. 1, the system for HTTP streaming service may be configured, including a server 101 and a client, and may be configured, further including a storage unit 103 and a buffer 104. The server 101 may divide multimedia contents, that is, a streaming target, into a plurality of segments in the same or different sizes. Firstly, the case that the server 101 divides multimedia contents, that is, a streaming target, into a plurality of segments in the same sizes will be described. The server 101 divides multimedia contents, that is, a streaming target, by 2 sec units, so that the server 101 may generate and store a plurality of segments. At this point, the same multimedia contents may have different versions according to types of a bit rate, a resolution, and an encoding codec, and this may be expressed as representation (hereinafter, this will be referred to as “representation”).
For example, when a playback time of multimedia contents is 90 min and a bit rate corresponding to contents information has 75 kbps, 150 kbps, and 300 kbps versions, the server 101 divides the multimedia contents having the playback time of 90 min by 2 sec unit according to each version, so that the multimedia contents are divided into 2700 segments. Also, since the 2700 segments may have different versions according to types of a bit rate, a resolution, and an encoding codec, the server 101 divides the multimedia contents into a total of 8100 segments.
Secondly, the case that the server 101 divides multimedia contents, that is, a streaming target, into a plurality of segments in different sizes will be described. For example, when a playback time of multimedia contents is 90 min and a bit rate corresponding to contents information has 75 kbps, 150 kbps, and 300 kbps versions, the server 101 divides the multimedia contents into a plurality of segments by 2 sec unit during a playback time from 0 min to 3 min, and divides the multimedia contents into a plurality of segments by 4 sec unit during a playback time from 3 min to 4 min.
The segments produced by the server 101 include a group of pictures GOP (hereinafter is referred to as ‘GOP’) which consists of a header section, an I (intra-coded) frame on the basis of intra-frame encoding, P frame and B frame on the basis of predictive encoding.
The server 101 dividing multimedia contents into a plurality of segments allocates URL information to the plurality of segments divided in a predetermined number, and stores the URL information on each segment in a media information file and transmits it to the client 102. At this point, the media information file may be differently referred to as Media Presentation Description (MPD) or a manifest file according to organizations for standardization, which standardize HTTP streaming.
The server 101 may detect that the client 102 initiate a streaming service. When the server 101 detect that the client 102 initiate the streaming service, the server 101 transmits media information file, which stores URL information related to segments, to the client 102 via buffer 104. The server 101 receives a segment request message from the client 102, receives the segments, which correspond to segment URL information included in segment transmission request message, from storage unit 103, and transmits the received segments to the client 102.
The client 102 may initiate a streaming service. When the client 102 initiates the streaming service, the client 102 receives, from the server 101, media information file, which stores URL information related to segments. In addition, the client 102 may detect the network transmission environment, and may transmit segment request message, which requests segment to be outputted depending upon the detected current network transmission environment, to the server 101. In this case, the client 102 makes the URL information of the segment to be outputted to be included in the segment request message, and transmits the segment request message to the server 101.
The client 102 may receive segments from the server 101 to output the segments. For example, a representation switching may occur because the client 102 decodes P frame of the segment corresponding to low bit rate on reference to I frame with high bit rate, in case the client 102 senses or detects that the network transmission environment is deteriorated, the client 102 requests the transmission of the segments corresponding to low bit rate to the server 101, and the client 102 receives the segment corresponding to low bit rate to decode the segment corresponding to low bit rate.
The storage unit 103 receives segments divided by the server 101, and stores the received segments according to contents information and time. Additionally, when the server 101 receives a segment request message from the client 102, a segment(s), which corresponds to the received URL from the server 101, in the storage unit 103 may be searched for, and then, may be transmitted to the server 101. Then, when the server 101 divides multimedia contents by the same/different predetermined periods in order for HTTP streaming service and stores them in the storage unit 103, the internal structure of the storage unit 103 will be described in more detail with reference to FIGS. 2 and 3.
FIG. 2 is a block diagram when multimedia contents are divided into a plurality of segments with the same size in order for HTTP streaming service. FIG. 3 is a block diagram when multimedia contents are divided into a plurality of segments with a different size in order for HTTP streaming service.
The server 101 may divide multimedia contents, that is, a streaming target, into a plurality of segments in the same or different sizes. Firstly, the case that the server 101 divides multimedia contents, that is, a streaming target, into a plurality of segments in the same sizes will be described with reference to FIG. 2. For example, when a playback time of multimedia contents is 90 min, a bit rate corresponding to contents information has 500 kbps, 1 Mbps, and 2 Mbps versions, and a resolution has SD, 720P, and HD versions, the server 101 divides multimedia contents having a playback time of 90 min into 2700 segments by 2 sec unit according to each contents information. At this point, the divided 2700 segments are generated as segments having different representations according to 500 kbps, 1 Mbps, and 2 Mbps bit rates and SD, 720P, and HD resolutions, so that a total of 8100 segments are generated. The segments produced by the server 101 include a GOP which consists of a header section, an I frame on the basis of intra-frame encoding, P frame and B frame on the basis of predictive encoding.
That is, segments including contents during the period between 0 sec to 2 sec include a segment 203 corresponding to a bit rate of 500 kbps and a resolution of a SD version, a segment 204 corresponding to a bit rate of 1 Mbps and a resolution of a 720P version, and a segment 205 corresponding to a bit rate of 2 Mbps and a resolution of an HD version. The remaining segments are divided by 2 sec unit, so that they are divided into 2700 segments.
Secondly, the case that the server 101 divides multimedia contents, that is, a streaming target, into a plurality of segments in different sizes will be described with reference to FIG. 3. For example, when a playback time of multimedia contents is 90 min, a bit rate corresponding to contents information has 500 kbps, 1 Mbps, and 2 Mbps versions, and a resolution has SD, 720P, and HD versions, the server 101 divides the multimedia contents by 3 sec unit during the period between 0 sec to 3 sec according to each contents information, and divides the multimedia contents by 2 sec unit during the period between 3 sec to 4 sec, so that the multimedia contents are divided into a plurality of segments. The segments produced by the server 101 include a GOP which consists of a header section, an I frame on the basis of intra-frame encoding, P frame and B frame on the basis of predictive encoding.
That is, the server 101 generates segments in proportion to the number of versions according to the contents information. For this reason, when URL information corresponding to a large amount of segments is included in a media information file, the size of the media information file becomes larger, so that it becomes impossible to provide the media information file to the client 102 at a fast speed.
That is, segments including contents during the period between 0 sec to 3 sec include a segment 303 corresponding to a bit rate of 500 kbps and a resolution of a SD version, a segment 304 corresponding to a bit rate of 1 Mbps and a resolution of a 720P version, and a segment 305 corresponding to a bit rate of 2 Mbps and a resolution of an HD version. Segments including contents during the period between 3 sec to 5 sec include a segment corresponding to a bit rate of 500 kbps and a resolution of a SD version, a segment 306 corresponding to a bit rate of 1 Mbps and a resolution of a 720P version, and a segment corresponding to a bit rate of 2 Mbps and a resolution of an HD version. That is, the server 101 generates segments in proportion to the number of versions according to the contents information. Accordingly, when URL information corresponding to a large amount of segments is included in a media information file, the size of the media information file becomes larger, so that it becomes impossible to provide the media information file to the client 102 at a fast speed.
The client 102 may initiate streaming service. The client 102 may receive a segment corresponding to a predetermined representation from the server 101, and then, may output the segment. Additionally, the client 102 detects a current channel state and requests a segment according to the current channel state to the server 101. For example, when the client 102 detects that a current channel state becomes worse while receiving a segment corresponding to a bit rate of 300 kbps and outputs it on a screen, the client 102 requests the transmission of a segment corresponding to a low bit rate to the server 101, and then, receives a segment corresponding to a bit rate of 150 kbps from the server 101 so as to output the received segment.
For example, a representation switching may occur and thus screen interruption may occur because the client 102 decodes P frame of the segment corresponding to low bit rate on reference to I frame with high bit rate, in case the client 102 detects that the network transmission environment become worse, the client 102 requests the transmission of the segments corresponding to low bit rate to the server 101, and the client 102 receives the segment corresponding to low bit rate to decode the segment corresponding to low bit rate.
Additionally, since each segment has a different length of a playback time, a playback time of a currently-outputting segment may not continue with a playback time of a segment that is received from the server 101 to be outputted. For example, although a playback time of a current output segment corresponds to the period between 9 min 30 sec to 12 min 00 sec, when a playback time of a segment received from the server 101 and outputted is the period between 12 min 03 sec to 15 min 00 sec, in case a currently outputting segment switches into the next output segment, that is, in case representation switching occurs, screen interruption may occur.
Moreover, according as a playback time of multimedia contents, that is, a streaming target, becomes longer, i.e., according as the capacity of multimedia contents is increased, the number of divided segments is increased. Thus, a high capacity storage unit for storing a large amount of segments is required. According as a high capacity storage unit is used, high production costs for configuring a system are required.